import { useEffect, useState, useReducer, useRef } from 'react';

export default function trap() {
    // const [count, setCount] = useState(0);
    // const [num, setNum] = useState(0);
    // useEffect(() => {
    //     const timer = setInterval(() => {
    //         setCount((count => {
    //             return count + 1
    //         }))
    //         setNum((num => {
    //             return num + 1
    //         }))
    //     }, 1000)
    // }, [])

    // const [count, dispatch] = useReducer(Reducer, 0);

    // useEffect(() => {
    //     setInterval(() => {
    //         dispatch({ type: 'add', num: 1 })
    //     }, 1000)
    // }, [])
    // function Reducer(state, action) {
    //     switch (action.type) {
    //         case 'add':
    //             return state + action.num
    //         default:
    //             return state
    //     }
    // }

    // const [count, setCount] = useState(Date.now());
    // useEffect(() => {
    //     const timer = setInterval(() => {
    //         console.log(Date.now() - count);
    //         setCount(count + 1)
    //     }, 3000)
    //     return () => {
    //         clearInterval(timer)
    //     }
    // }, [count])
    const [count, setCount] = useState(0);
    function updateCount() {
        setCount(count + 1);
    }
    const Ref = useRef(updateCount);
    Ref.current = updateCount;
    useEffect(() => {
        const timer = setInterval(() => {
            Ref.current();
        }, 1000)
        return () => {
            clearInterval(timer)
        }
    }, [])
    return (
        <div>
            {count}
            {/* {num} */}
        </div>
    )
}
